home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / bin / kopete_latexconvert.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2008-07-08  |  5KB  |  235 lines

  1. #!/bin/sh
  2. #############################################################
  3. # TEX2IM:   Converts LaTeX formulas to pixel graphics which #
  4. #           can be easily included in Text-Processors like  #
  5. #           M$ or Staroffice.                               #
  6. #                                                           #
  7. # Required software: latex, convert (image magic)           #
  8. # to get color, the latex color package is required         #
  9. #############################################################
  10. # Version 1.8  (http://www.nought.de/tex2im.html)           #
  11. # published under the GNU public licence (GPL)              #
  12. # (c) 14. May 2004 by Andreas Reigber                   #
  13. # Email: anderl@nought.de                                   #
  14. #############################################################
  15.  
  16. #
  17. # Default values
  18. #
  19.  
  20. resolution="150x150"
  21. format="png"
  22. color1="white"
  23. color2="black"
  24. trans=1
  25. noformula=0
  26. aa=1
  27. extra_header="$HOME/.tex2im_header"
  28.  
  29. if [ -f ~/.tex2imrc ]; then
  30.     source ~/.tex2imrc
  31. fi
  32.  
  33. OPTERR=0
  34.  
  35. if [ $# -lt 1 ]; then
  36.     echo "Usage: `basename $0` [options] file.tex, for help give option -h" 1>&2
  37.     exit 1
  38. fi
  39.  
  40. while getopts hanzb:t:f:o:r:vx: Optionen; do
  41.     case $Optionen in
  42.         h) echo "tex2im [options] latex_expression
  43.  
  44. The content of input file should be _plain_ latex mathmode code!
  45. Alternatively, a string containing the latex code can be specified.
  46.  
  47. Options:
  48. -v         show version
  49. -h         show help
  50. -a         change status of antialiasing
  51.            default is on for normal mode and
  52.               off for transparent mode
  53. -o file    specifies output filename,
  54.            default is inputfile with new extension
  55. -f expr    specifies output format,
  56.            possible examples: gif, jpg, tif......
  57.            all formates supported by 'convert' should work,
  58.            default: png
  59. -r expr    specifies desired resolution in dpi,
  60.            possible examples: 100x100, 300x300, 200x150,
  61.            default is 150x150
  62. -b expr    specifies the background color
  63.            default: white
  64. -t expr    specifies the text color
  65.            default: black
  66. -n         no-formula mode (do not wrap in eqnarray* environment)
  67.            default: off
  68. -z         transparent background
  69.            default: off
  70. -x file    file containing extra header lines.
  71.            default: ~/.tex2im_header"
  72.             exit 0 ;;
  73.         v) echo "TEX2IM Version 1.8"
  74.             exit 0 ;;
  75.         r) resolution=$OPTARG;;
  76.         o) outfile=$OPTARG;;
  77.         z) trans=1
  78.            aa=0;;
  79.         a) if [ $aa -eq 0 ]; then
  80.                 aa=1
  81.             else
  82.                 aa=0
  83.             fi;;
  84.         n) noformula=1;;
  85.         b) color1=$OPTARG;;
  86.         t) color2=$OPTARG;;
  87.         f) format=$OPTARG;;
  88.       x) extra_header=$OPTARG;;
  89.     esac
  90. done
  91.  
  92. #
  93. # Generate temporary directory
  94. #
  95.  
  96. if test -n "`type -p mktemp`" ; then
  97.     tmpdir="`mktemp -d /tmp/tex2imXXXXXX`"
  98. else
  99.     tmpdir=/tmp/tex2im$$
  100.     if [ -e $tmpdir ] ; then
  101.         echo "$0: Temporary directory $tmpdir already exists." 1>&2
  102.         exit 1
  103.     fi
  104.     mkdir $tmpdir
  105. fi
  106. homedir="`pwd`" || exit 1
  107.  
  108. #
  109. # Names for input and output files
  110. #
  111.  
  112. while [ $OPTIND -le $# ]
  113. do
  114.  
  115. eval infile=\$${OPTIND}
  116.  
  117. if [ -z $outfile ]; then
  118.     if [ -e "$infile" ]; then
  119.         base=`basename ${infile} .tex` ;
  120.         outfile=${base}.$format
  121.     else
  122.         outfile=out.$format
  123.     fi
  124. fi
  125.  
  126. #
  127. # Here we go
  128. #
  129.  
  130. (
  131. cat << ENDHEADER1
  132. \documentclass[12pt]{article}
  133. \usepackage{color}
  134. \usepackage{amsmath,latexsym,amsfonts,amssymb,ulem}
  135. \usepackage[dvips]{graphicx}
  136. \pagestyle{empty}
  137. ENDHEADER1
  138. ) > $tmpdir/out.tex
  139.  
  140. #
  141. # Do we have a file containing extra files to include into the header?
  142. #
  143.  
  144. if [ -f $extra_header ]; then
  145.     (
  146.     cat $extra_header
  147.     ) >> $tmpdir/out.tex
  148. fi
  149.  
  150. if [ $noformula -eq 1 ]; then
  151. (
  152. cat << ENDHEADER2
  153. \pagecolor{$color1}
  154. \begin{document}
  155. {\color{$color2}
  156. ENDHEADER2
  157. ) >> $tmpdir/out.tex
  158. else
  159. (
  160. cat << ENDHEADER2
  161. \pagecolor{$color1}
  162. \begin{document}
  163. {\color{$color2}
  164. \begin{eqnarray*}
  165. ENDHEADER2
  166. ) >> $tmpdir/out.tex
  167. fi
  168.  
  169. # Kopete does not need to parse the content of a file.
  170. #if [ -e "$infile" ]; then
  171. #    cat $infile >> $tmpdir/out.tex
  172. #else
  173.     printf '%s' "$infile" >> $tmpdir/out.tex
  174. #fi
  175.  
  176. if [ $noformula -eq 1 ]; then
  177. (
  178. cat << ENDFOOTER
  179. }\end{document}
  180. ENDFOOTER
  181. ) >> $tmpdir/out.tex
  182. else
  183. (
  184. cat << ENDFOOTER
  185. \end{eqnarray*}}
  186. \end{document}
  187. ENDFOOTER
  188. ) >> $tmpdir/out.tex
  189. fi
  190.  
  191. cd $tmpdir
  192. for f in $homedir/*.eps; do
  193.     test -f ${f##*/} || ln -s $f . # multi-processing!
  194. done
  195. latex -interaction=batchmode -halt-on-error out.tex > /dev/null
  196. [ ! -e out.dvi ] && exit 1;
  197. cd "$homedir"
  198. dvips -o $tmpdir/out.eps -E $tmpdir/out.dvi 2> /dev/null
  199.  
  200. #
  201. # Transparent background
  202. #
  203.  
  204. if [ $trans -eq 1 ]; then
  205.     if [ $aa -eq 1 ]; then
  206.         convert +adjoin -antialias -transparent $color1 -density $resolution $tmpdir/out.eps $tmpdir/out.$format
  207.     else
  208.         convert +adjoin +antialias -transparent $color1 -density $resolution $tmpdir/out.eps $tmpdir/out.$format
  209.     fi
  210. else
  211.     if [ $aa -eq 1 ]; then
  212.         convert +adjoin -antialias -density $resolution $tmpdir/out.eps $tmpdir/out.$format
  213.     else
  214.         convert +adjoin +antialias -density $resolution $tmpdir/out.eps $tmpdir/out.$format
  215.     fi
  216. fi
  217.  
  218.  
  219. if [ -e $tmpdir/out.$format ]; then
  220.     mv $tmpdir/out.$format $outfile
  221. else
  222.     mv $tmpdir/out.$format.0 $outfile
  223. fi
  224.  
  225. OPTIND=$((${OPTIND}+1))
  226. outfile=""
  227. done
  228.  
  229. #
  230. # Cleanup
  231. #
  232.  
  233. rm -rf $tmpdir
  234. exit 0
  235.